
#ifndef RANDOM_HPP
#define RANDOM_HPP

enum DistType { Norm, Uniform, Expon, LogNormal };

// random initialization if the seed is not specified

class Random {
  static bool s_init;
  static int s_seed;
  DistType m_type;
public:
  Random ( DistType p_type = Uniform, int p_seed = 0 );
  virtual ~Random() { }
  DistType type() { return m_type; }
  virtual double rand();
  virtual double CDF (double x);
  virtual double InvCDF (double x);
};

#endif
